// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package com.xiaomi.infra.galaxy.common.http; import com.xiaomi.infra.galaxy.common.BasicGalaxyRequest; import com.xiaomi.infra.galaxy.common.GalaxyClientException; import com.xiaomi.infra.galaxy.common.SessionExpiredException; import com.xiaomi.infra.galaxy.common.auth.AnonymousGalaxyCredentials; import com.xiaomi.infra.galaxy.common.auth.Galaxy4Signer; import com.xiaomi.infra.galaxy.common.auth.SessionCredentials; import com.xiaomi.infra.galaxy.common.constants.APILevel; import com.xiaomi.infra.galaxy.common.constants.ReturnCode; import com.xiaomi.infra.galaxy.common.model.GalaxyMarshaller; import com.xiaomi.infra.galaxy.common.model.MiSatRequest; import com.xiaomi.infra.galaxy.common.model.OAuthProvider; import com.xiaomi.infra.galaxy.common.model.QQSatRequest; import com.xiaomi.infra.galaxy.common.model.StorageAccessTokenRequest; import com.xiaomi.infra.galaxy.common.model.StorageAccessTokenResult; import com.xiaomi.infra.galaxy.common.util.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; // Referenced classes of package com.xiaomi.infra.galaxy.common.http: // GalaxyClient, ClientConfiguration, GalaxyServiceClient, ExecutionContext public class BasicGalaxyOAuthClient extends GalaxyClient { private static final Log log = LogFactory.getLog(com/xiaomi/infra/galaxy/common/http/BasicGalaxyOAuthClient); private SessionCredentials sessionCredentials; private Galaxy4Signer signer; public BasicGalaxyOAuthClient(ClientConfiguration clientconfiguration, GalaxyServiceClient galaxyserviceclient, GalaxyMarshaller galaxymarshaller) { super(clientconfiguration, galaxyserviceclient, galaxymarshaller); sessionCredentials = new SessionCredentials(clientconfiguration.getAppId()); signer = new Galaxy4Signer(); signer.setServiceName("Galaxy"); galaxyserviceclient.setConfiguration(clientconfiguration); } public BasicGalaxyOAuthClient(GalaxyServiceClient galaxyserviceclient, GalaxyMarshaller galaxymarshaller) { ClientConfiguration clientconfiguration; if (galaxyserviceclient == null) { clientconfiguration = null; } else { clientconfiguration = galaxyserviceclient.getConfiguration(); } this(clientconfiguration, galaxyserviceclient, galaxymarshaller); } public StorageAccessTokenResult getStorageAccessTokenResult() { if (sessionCredentials != null) { return sessionCredentials.getStorageAccessTokenResult(); } else { return null; } } public boolean getstorageAccessToken(StorageAccessTokenRequest storageaccesstokenrequest) { this; JVM INSTR monitorenter ; String s = clientConfiguration.getAppId(); if (!StringUtils.isBlank(storageaccesstokenrequest.getAppId())) goto _L2; else goto _L1 _L1: log.info("storage access token request's appId is null"); storageaccesstokenrequest.setAppId(s); _L5: BasicGalaxyRequest basicgalaxyrequest; basicgalaxyrequest = storageaccesstokenrequest.getGalaxyRequest(marshaller.marshall(storageaccesstokenrequest), APILevel.User); basicgalaxyrequest.addParameter("appid", storageaccesstokenrequest.getAppId()); if (!StringUtils.isBlank(storageaccesstokenrequest.getAccessToken())) goto _L4; else goto _L3 _L3: log.error("storage access token request's access token is null"); boolean flag = false; _L6: this; JVM INSTR monitorexit ; return flag; _L2: clientConfiguration.setAppId(storageaccesstokenrequest.getAppId()); goto _L5 Exception exception1; exception1; exception1.printStackTrace(); log.error("get storage access token failed!", exception1); clientConfiguration.setAppId(s); flag = false; goto _L6 _L4: basicgalaxyrequest.addParameter("accessToken", storageaccesstokenrequest.getAccessToken()); if (!StringUtils.isBlank(storageaccesstokenrequest.getOauthAppId())) { break MISSING_BLOCK_LABEL_177; } log.error("storage access token request's oauth appId is null"); flag = false; goto _L6 basicgalaxyrequest.addParameter("oauth_appid", storageaccesstokenrequest.getOauthAppId()); if (storageaccesstokenrequest.getOauthVersion() != null) goto _L8; else goto _L7 _L7: String s1 = ""; _L12: OAuthProvider oauthprovider; basicgalaxyrequest.addParameter("oauth_version", s1); oauthprovider = OAuthProvider.fromValue(storageaccesstokenrequest.getOauthProvider()); if (oauthprovider != OAuthProvider.QQ) goto _L10; else goto _L9 _L9: if (!(storageaccesstokenrequest instanceof QQSatRequest)) { clientConfiguration.setAppId(s); throw new GalaxyClientException(ReturnCode.OAUTH_ACCESSTOKEN_IS_INVALID, (new StringBuilder()).append("should use ").append(com/xiaomi/infra/galaxy/common/model/QQSatRequest.getName()).append(" class with qq oauth ").toString()); } goto _L11 Exception exception; exception; this; JVM INSTR monitorexit ; throw exception; _L8: s1 = storageaccesstokenrequest.getOauthVersion(); goto _L12 _L11: basicgalaxyrequest.addParameter("oauth_qq_openid", ((QQSatRequest)storageaccesstokenrequest).getOpenid()); basicgalaxyrequest.addParameter("oauth_qq_oauth_type", ((QQSatRequest)storageaccesstokenrequest).getOauthType()); _L14: if (!StringUtils.isBlank(storageaccesstokenrequest.getOauthProvider())) { break MISSING_BLOCK_LABEL_448; } clientConfiguration.setAppId(s); log.error("storage access token request's oauth provider is null"); flag = false; goto _L6 _L10: if (oauthprovider != OAuthProvider.XiaoMi) goto _L14; else goto _L13 _L13: if (!(storageaccesstokenrequest instanceof MiSatRequest)) { clientConfiguration.setAppId(s); throw new GalaxyClientException(ReturnCode.OAUTH_ACCESSTOKEN_IS_INVALID, (new StringBuilder()).append("should use ").append(com/xiaomi/infra/galaxy/common/model/MiSatRequest.getName()).append(" class with xiaomi oauth ").toString()); } basicgalaxyrequest.addParameter("oauth_xiaomi_mackey", ((MiSatRequest)storageaccesstokenrequest).getMacKey()); basicgalaxyrequest.addParameter("oauht_xiaomi_mac_algorithm", ((MiSatRequest)storageaccesstokenrequest).getMacAlgorithm()); goto _L14 StorageAccessTokenResult storageaccesstokenresult; basicgalaxyrequest.addParameter("oauth_provider", storageaccesstokenrequest.getOauthProvider()); basicgalaxyrequest.addHeader("X-XiaoMi-Appid", storageaccesstokenrequest.getAppId()); ExecutionContext executioncontext = new ExecutionContext(); executioncontext.setSigner(signer); executioncontext.setCredentials(new AnonymousGalaxyCredentials(storageaccesstokenrequest.getAppId())); executioncontext.setMarshaller(marshaller); storageaccesstokenresult = (StorageAccessTokenResult)serviceClient.execute(basicgalaxyrequest, com/xiaomi/infra/galaxy/common/model/StorageAccessTokenResult, executioncontext); if (storageaccesstokenresult.getCode() == 1) { break MISSING_BLOCK_LABEL_555; } clientConfiguration.setAppId(s); flag = false; goto _L6 sessionCredentials.setStorageAccessTokenResult(storageaccesstokenresult); flag = true; goto _L6 } protected Object invoke(BasicGalaxyRequest basicgalaxyrequest, Class class1) { basicgalaxyrequest.addHeader("X-XiaoMi-Appid", sessionCredentials.getGalaxyAppId()); ExecutionContext executioncontext = new ExecutionContext(); executioncontext.setSigner(signer); executioncontext.setMarshaller(marshaller); if (isLogin()) { executioncontext.setCredentials(sessionCredentials); } else { executioncontext.setCredentials(new AnonymousGalaxyCredentials(clientConfiguration.getAppId())); } return serviceClient.execute(basicgalaxyrequest, class1, executioncontext); } public boolean isLogin() { if (sessionCredentials != null) goto _L2; else goto _L1 _L1: String s; return false; _L2: if (StringUtils.isBlank(s = sessionCredentials.getGalaxySecretKey())) goto _L1; else goto _L3 _L3: return true; SessionExpiredException sessionexpiredexception; sessionexpiredexception; logout(); return false; } public void logout() { this; JVM INSTR monitorenter ; if (sessionCredentials != null) { sessionCredentials.setStorageAccessTokenResult(null); } this; JVM INSTR monitorexit ; return; Exception exception; exception; throw exception; } public void setStorageAccessTokenResult(StorageAccessTokenResult storageaccesstokenresult) { this; JVM INSTR monitorenter ; if (sessionCredentials == null) goto _L2; else goto _L1 _L1: sessionCredentials.setStorageAccessTokenResult(storageaccesstokenresult); _L4: this; JVM INSTR monitorexit ; return; _L2: sessionCredentials = new SessionCredentials(clientConfiguration.getAppId()); if (true) goto _L4; else goto _L3 _L3: Exception exception; exception; throw exception; } }